package com.ruoyi.hydrology.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; //添加
import com.ruoyi.hydrology.domain.Cgkcdss;
import com.ruoyi.hydrology.dto.HydrologyDto;
import com.ruoyi.hydrology.mapper.CgkcdssMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.hydrology.mapper.CgkcddyMapper;
import com.ruoyi.hydrology.domain.Cgkcddy;
import com.ruoyi.hydrology.service.ICgkcddyService;

/**
 * 长观孔基础信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-12-06
 */
@Service
public class CgkcddyServiceImpl extends ServiceImpl<CgkcddyMapper, Cgkcddy> implements ICgkcddyService //修改
{
    @Autowired
    private CgkcddyMapper cgkcddyMapper;
    @Autowired
    private CgkcdssMapper cgkcdssMapper;
    /**
     * 查询长观孔基础信息
     * 
     * @param id 长观孔基础信息主键
     * @return 长观孔基础信息
     */
    @Override
    public Cgkcddy selectCgkcddyById(String id)
    {
        return cgkcddyMapper.selectCgkcddyById(id);
    }

    /**
     * 查询长观孔基础信息列表
     * 
     * @param cgkcddy 长观孔基础信息
     * @return 长观孔基础信息
     */
    @Override
    public List<Cgkcddy> selectCgkcddyList(Cgkcddy cgkcddy)
    {
        return cgkcddyMapper.selectCgkcddyList(cgkcddy);
    }

    /**
     * 新增长观孔基础信息
     * 
     * @param cgkcddy 长观孔基础信息
     * @return 结果
     */
    @Override
    public int insertCgkcddy(Cgkcddy cgkcddy)
    {
        return cgkcddyMapper.insertCgkcddy(cgkcddy);
    }

    /**
     * 修改长观孔基础信息
     * 
     * @param cgkcddy 长观孔基础信息
     * @return 结果
     */
    @Override
    public int updateCgkcddy(Cgkcddy cgkcddy)
    {
        return cgkcddyMapper.updateCgkcddy(cgkcddy);
    }

    /**
     * 批量删除长观孔基础信息
     * 
     * @param ids 需要删除的长观孔基础信息主键
     * @return 结果
     */
    @Override
    public int deleteCgkcddyByIds(String[] ids)
    {
        return cgkcddyMapper.deleteCgkcddyByIds(ids);
    }

    /**
     * 删除长观孔基础信息信息
     * 
     * @param id 长观孔基础信息主键
     * @return 结果
     */
    @Override
    public int deleteCgkcddyById(String id)
    {
        return cgkcddyMapper.deleteCgkcddyById(id);
    }

    @Override
    public Cgkcddy selectCgkcddyByCode(String stationCode) {
        return cgkcddyMapper.selectCgkcddyByCode(stationCode);
    }

    @Override
    public List<HydrologyDto> getHydrology() {
        List<HydrologyDto> cgkcddies = cgkcddyMapper.getCgkcddy();
        List<HydrologyDto> collect = cgkcddies.stream().map(cgkcddy -> {
            Cgkcdss cgkcdss = cgkcdssMapper.selectCgkcdssByCode(cgkcddy.getStationCode());
            cgkcddy.setMeasureName("长观井");
            cgkcddy.setValue(cgkcdss.getWaterLevel().toString());
            cgkcddy.setMonitorTime(cgkcdss.getMonitorTime());
            cgkcddy.setSensorType("1");
            return cgkcddy;
        }).collect(Collectors.toList());
        return collect;
    }
}
